//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#ifndef LISTRESIDUESDISTANCELIGAND_H
#define	LISTRESIDUESDISTANCELIGAND_H
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#include "libraries.h"
#include "DistanceBindingSite.h"

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>

#include <fstream>
#include <iostream>
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
using namespace std;
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
class ListResiduesDistanceLigand {

  private:

    String* location;
    String* listInFilename;
    String* filenameOut;
    String* filenameError;

    double  distance;

  protected:

    bool    SplitColumn(char*, TListE <String>*, char*);
    bool    SplitColumn(char*, TListE <String>*, const char*);
    char    OneLetterAACode(String*);
    
    String* ExtractPDBCodeFromNamefile(String*);

  public:

    ListResiduesDistanceLigand();
    ListResiduesDistanceLigand(const ListResiduesDistanceLigand&);
    ListResiduesDistanceLigand(const ListResiduesDistanceLigand*);

    ~ListResiduesDistanceLigand();

    void    Location(String*);
    void    FilenameOut(String*);
    void    FilenameError(String*);
    void    ListInFilename(String*);

    void    Distance(double);

    String* Location(void);
    String* FilenameOut(void);
    String* FilenameError(void);
    String* ListInFilename(void);
    
    double  Distance(void);

    bool    ConstructFileUsingList();
    bool    ConstructFileLargestLigandUsingList();

};
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#endif
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
